import numpy as np

frist_array = np.array(object, dtype=None, copy=True,
                       order=None, subok=False, ndmin=0)
print(frist_array
      )
# 从列表里创建
a = np.array([1, 2, 3])
print(a)

# 从元组里面创建
b = np.array((0, 1, 2, 3))
print(b)

# 使用arange函数创建数值范围并返回ndarray对象，格式如下：
# numpy.arange(start, stop, step, dtype)
x = np.arange(5)
print(x)

# 数组元素为随机值，因为未初始化
# numpy.empty(shape, dtype = float, order = 'C')
y = np.empty([3, 2], dtype=int)
print(y)

# numpy.zeros创建指定大小的数组，数组元素以0来填充：
# numpy.zeros(shape, dtype = float, order = 'C')
y = np.zeros((5,), dtype = np.int)
print(y)

# 自定义类型
z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])
print(z)


# numpy.ones创建指定形状的数组，数组元素以1来填充：
# numpy.ones(shape, dtype = None, order = 'C')
x = np.ones([2,2], dtype = int)
print(x)

# 使用省略号来进行切片
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print (a[...,1])   # 第2列元素
print (a[1,...])   # 第2行元素
print (a[...,1:])  # 第2列及剩下的所有元素


# numpy.hstack 是 numpy.stack 函数的变体，它通过水平堆叠来生成数组。
a = np.array([[1, 2], [3, 4]])

print('第一个数组：')
print(a)
print('\n')
b = np.array([[5, 6], [7, 8]])

print('第二个数组：')
print(b)
print('\n')

print('水平堆叠：')
c = np.hstack((a, b))
print(c)
print('\n')




